@echo off
chcp 65001 >nul
setlocal enabledelayedexpansion

REM Kafka Tool 服务停止脚本 (Windows版本)
REM 停止后端服务和WebSocket服务

echo 正在停止 Kafka Tool 服务...
echo.

REM 通过端口停止服务的函数
REM 停止端口8001上的WebSocket服务
echo 停止WebSocket服务 (端口: 8001)...
for /f "tokens=5" %%a in ('netstat -ano ^| findstr ":8001" ^| findstr "LISTENING"') do (
    set pid=%%a
    if defined pid (
        echo 找到WebSocket服务进程 PID: !pid!
        taskkill /PID !pid! /F >nul 2>&1
        if !errorlevel! equ 0 (
            echo WebSocket服务已停止
        ) else (
            echo 停止WebSocket服务失败
        )
    )
)

REM 停止端口8002上的Django后端服务
echo 停止Django后端服务 (端口: 8002)...
for /f "tokens=5" %%a in ('netstat -ano ^| findstr ":8002" ^| findstr "LISTENING"') do (
    set pid=%%a
    if defined pid (
        echo 找到Django后端服务进程 PID: !pid!
        taskkill /PID !pid! /F >nul 2>&1
        if !errorlevel! equ 0 (
            echo Django后端服务已停止
        ) else (
            echo 停止Django后端服务失败
        )
    )
)

REM 额外清理：停止所有python和daphne进程（谨慎使用）
echo 清理相关进程...
taskkill /IM "python.exe" /F >nul 2>&1
taskkill /IM "daphne.exe" /F >nul 2>&1

REM 等待进程完全停止
timeout /t 2 /nobreak >nul

echo.
echo === 所有服务已停止 ===
echo.

REM 检查端口状态
echo 检查端口状态:
netstat -an | findstr ":8001" | findstr "LISTENING" >nul
if !errorlevel! equ 0 (
    echo   端口 8001: 仍有进程在监听
) else (
    echo   端口 8001: 空闲
)

netstat -an | findstr ":8002" | findstr "LISTENING" >nul
if !errorlevel! equ 0 (
    echo   端口 8002: 仍有进程在监听
) else (
    echo   端口 8002: 空闲
)

echo.
echo 使用 'start_services.bat' 重新启动所有服务
echo.
echo 按任意键退出...
pause >nul